package me.flyray.bsin.infrastructure.biz.paychannel.joinpay.domain.request;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serial;
import java.io.Serializable;

@Data
@NoArgsConstructor
@AllArgsConstructor
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BaseRequest implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 版本号
     * <ul>
     * <li><b>说明:</b> 当前版本号为 2.5</li>
     * <li><b>必填:</b> 是</li>
     * <li><b>长度:</b> D(3,1)</li>
     * </ul>
     */
    @JsonProperty(value = "p0_Version",index = 0)
    private String version="2.5";

    /**
     * 商户编号
     * <ul>
     * <li><b>说明:</b> 商户在支付平台的唯一身份标识。</li>
     * <li><b>必填:</b> 是</li>
     * <li><b>长度:</b> X(15)</li>
     * </ul>
     */
    @JsonProperty(value = "p1_MerchantNo",index = 1)
    private String merchantNo;



    /**
     * 签名数据
     * <ul>
     * <li><b>说明:</b> 对请求参数进行加密后的签名，详见签名机制。</li>
     * <li><b>必填:</b> 是</li>
     * <li><b>长度:</b> X(4000)</li>
     * </ul>
     */
    @JsonProperty(value = "hmac",index = Integer.MAX_VALUE)
    private String hmac;

}
